package cn.jkm.provider.content.action;

import cn.jkm.core.domain.mongo.content.ContentComment;
import cn.jkm.core.domain.type.ContentType;
import cn.jkm.core.domain.type.Status;
import cn.jkm.framework.mongo.mongo.Mongo;

import java.io.Serializable;
import java.util.List;

/**
 * Created by zhengzb on 2017/7/26.
 */
public class ContentCommentAction {
    /**
     * 查询帖子或新闻的所有评论
     * @param id    主题id
     * @param type  主题类型
     * @param refId
     * @param level
     * @return
     */
    public static List<ContentComment> listComments(String id, String type, String refId, int level) {
        return Mongo.buildMongo().eq("contentBaseId",id).eq("type",type).eq("status", Status.ACTIVE).find(ContentComment.class);
    }
    /**
     * 物理删除帖子的所有评论（打回时使用）
     * @param id    帖子id
     * @param type  帖子类型
     */
    public static void deletes(String id, String type) {
        Mongo.buildMongo().eq("contentBaseId",id).eq("type",type).remove("content_comment");
    }

    /**
     * 进行评论
     * @param subjectId     评论的主题id
     * @param content       评论的内容
     * @param refId         评论的评论id  如果评论帖子，refId为空
     * @param userId        评论的用户id
     * @param level         评论的级别，如果评论帖子为1，评论level为1的评论，它的level为2
     * @param contentType
     * @return 返回新增评论的id
     */
    public static String comment(String subjectId, String content, String refId, String userId, int level, ContentType contentType){
        ContentComment comment = new ContentComment();
        comment.setContentBaseId(subjectId);
        comment.setContent(content);
        comment.setRefId(refId);
        comment.setUserId(userId);
        comment.setType(contentType);
        comment.setLevel(level);
        comment.setStatus(Status.ACTIVE);
        Mongo.buildMongo().insert(comment);
        return comment.getId();
    }
}
